//[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
/**
 *
 *	@file		imageclip_data_local.h
 *	@brief		イメージクリップセーブデータ	ローカルヘッダ
 *	@author		tomoya takahashi
 *	@data		2006.02.27
 *
 */
//]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]

//-----------------------------------------------------------------------------
/**
 *					定数宣言
*/
//-----------------------------------------------------------------------------
#define IMC_SAVEDATA_DATAINIT_FLAG	( 0x1234 )		// 初期化データ格納時のフラグ
#define IMC_SAVEDATA_DATASET_FLAG	( 0x2345 )		// セーブデータ格納時のフラグ

enum{
	IMC_ACCE_9_GET_NUM = 9,
	IMC_ACCE_1_GET_NUM = 1,

	IMC_ACCE_9_ARRY_IN = 8,		// 9個用配列u32に入るデータの数
	IMC_ACCE_1_ARRY_IN = 32,	// 1個用配列u32に入るデータの数
	IMC_BG_ARRY_IN	   = 4,		// BG用配列u32に入るデータの数
	IMC_ACCE_9_ARRY_BIT = 4,	// 9個用配列に1データに使うビット数
	IMC_ACCE_1_ARRY_BIT = 1,	// 1個用配列に1データに使うビット数
	IMC_BG_ARRY_BIT		= 8,	// BG用配列に1データに使うビット数

	IMC_ACCE_9_ARRY_NUM	= 8,	// 9個もてるアクセサリのフラグ配列
	IMC_ACCE_1_ARRY_NUM = 2,	// 1個もてるアクセサリのフラグ配列
	IMC_BG_ARRY_NUM = 6,		// BGのフラグ配列
};

//-----------------------------------------------------------------------------
/**
 *					構造体宣言
*/
//-----------------------------------------------------------------------------

//-------------------------------------
//	ポケモンデータ
//=====================================
typedef struct _IMC_SAVEDATA_POKEMON{
	u32 personal_rnd;				///<ポケモンの個性乱数
	u32 idno;						///<IDNo	レアポケモン用
	u16	monsno;						///<モンスターナンバー
	u16 nickname[ IMC_SAVEDATA_NICKNAME_STR_NUM ];	///<ニックネーム
	u16 oyaname[ IMC_SAVEDATA_OYANAME_STR_NUM ];	///<ニックネーム
	s8 poke_pri;					///<ポケモン優先順位
	u8 poke_x;						///<ポケモンｘ座標
	u8 poke_y;						///<ポケモンｙ座標
	u8 form_id;					///<形状アトリビュート
	u8 oya_sex;						///<親性別
} ;

//-------------------------------------
//	アクセサリデータ構造体
//=====================================
typedef struct _IMC_SAVEDATA_ACCESSORIE{
	u8 accessory_no;	///<アクセサリナンバー
	u8 accessory_x;		///<アクセサリｘ座標
	u8 accessory_y;		///<アクセサリｙ座標
	s8 accessory_pri;	///<アクセサリ表示優先
} ;



//-------------------------------------
//	テレビ局用セーブデータワーク
//=====================================
typedef struct _IMC_TELEVISION_SAVEDATA{
	u32 init_flag;					///<初期化ﾃﾞｰﾀかのフラグ
	IMC_SAVEDATA_POKEMON	pokemon;///<ポケモンデータ
	u32 accessory_set_msk;			///<格納アクセサリーマスク
	PMS_DATA title;					///<クリップタイトル
	IMC_SAVEDATA_ACCESSORIE acce[ IMC_SAVEDATA_TELEVISION_ACCE_NUM ];	///<アクセサリ
	u8 bg_id;								///<bgナンバー
	u8 country;	// 国コード
} ;

//-------------------------------------
//	コンテスト用セーブデータワーク
//=====================================
typedef struct _IMC_CONTEST_SAVEDATA{
	u32 init_flag;					///<初期化ﾃﾞｰﾀかのフラグ
	u32 rank_code;					///<コンテストランクコード
	IMC_SAVEDATA_POKEMON	pokemon;///<ポケモンデータ
	u32 accessory_set_msk;			///<格納アクセサリーマスク
	IMC_SAVEDATA_ACCESSORIE acce[ IMC_SAVEDATA_CONTEST_ACCE_NUM ];	///<アクセサリ
	u8 bg_id;						///<bgナンバー
} ;

//-------------------------------------
//	アイテム保持セーブデータワーク
//=====================================
typedef struct _IMC_ITEM_SAVEDATA{
	u32 acce_9[ IMC_ACCE_9_ARRY_NUM ];		// 9個もてるアクセサリ　取得フラグ
	u32 acce_1[ IMC_ACCE_1_ARRY_NUM ];		// 1個もてるアクセサリ　取得フラグ
	u32 bg[ IMC_BG_ARRY_NUM ];				// BG取得順番データ
} ;


//-------------------------------------
//	セーブデータ
//=====================================
struct _IMC_SAVEDATA{
	IMC_TELEVISION_SAVEDATA imc_television_savedata[ IMC_SAVEDATA_TELEVISION_SAVENUM ];	///<saveデータ
	IMC_CONTEST_SAVEDATA	imc_contest_savedata[ IMC_SAVEDATA_CONTEST_SAVENUM ];		///<saveデータ

	IMC_ITEM_SAVEDATA	imc_item_savedata;	///<アイテムセーブデータ
};

